{
  description = "NixOS configuration";

  inputs = {
    # Nixpkgs
    nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";

    # Home manager
    home-manager.url = "github:nix-community/home-manager/release-23.11";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = { self, nixpkgs, home-manager, ... }@inputs: let
    inherit (self) outputs;
    names = import ./names.nix;
    timeZone = "Asia/Tbilisi";
    version = "23.11";
    unfree = import ./util/unfree.nix nixpkgs.lib;
  in {
    nixosConfigurations = {
      ${names.hostname} = nixpkgs.lib.nixosSystem {
        specialArgs = {
          inherit inputs outputs names version timeZone unfree;
        };
        modules = [ ./nixos/configuration.nix ];
      };
    };
  };
}
